﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Collections.ObjectModel;
using Barbar.MapReport.Common;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;
using System.Xml.Serialization;

namespace Barbar.MapReport.Common.Drawing.Commands {
  [XmlType(Namespace = Constants.XmlNamespace)]
  [Serializable]
  public class AddValueIndicatorsCommand : DrawingCommand {
    private SerializedColor m_Color;
    private Collection<BusinessGeoPoint> m_Points = new Collection<BusinessGeoPoint>();
    private MarkerBubbleBehavior m_BubbleBehavior;
    private MarkerRedirectBehavior m_RedirectBehavior;
    private int m_MinSize;
    private int m_MaxSize;

    public SerializedColor Color {
      get { return m_Color; }
      set { m_Color = value; }
    }
    
    public Collection<BusinessGeoPoint> Points {
      get { return m_Points; }
    }

    public MarkerBubbleBehavior BubbleBehavior {
      get { return m_BubbleBehavior; }
      set { m_BubbleBehavior = value; }
    }

    public MarkerRedirectBehavior RedirectBehavior {
      get { return m_RedirectBehavior; }
      set { m_RedirectBehavior = value; }
    }

    public int MinSize {
      get { return m_MinSize; }
      set { m_MinSize = value; }
    }

    public int MaxSize {
      get { return m_MaxSize; }
      set { m_MaxSize = value; }
    }

    public override void Render(IRenderer renderer) {
      renderer.AddValueIndicators(this);
    }
  }
}
